Исходный текст
Option Explicit
Call ShowAttrInfo(ThisObject)
'==============================================================================
'Вывести информацию по всем атрибутам объекта, а также
'протестировать создание/удаление атрибута в этой коллекции.
'==============================================================================
Sub ShowAttrInfo(obj)
Dim attr, ADef, ACol, tAttrDefTypes, num, RetVal, s, strVal
' Перечисление типов данных TDMS
tAttrDefTypes =Array ("tdmString", "tdmInteger", "tdmReal", "tdmBool", _
"tdmInteger64", "tdmDate", "tdmClassifier", "tdmObjectLink", "tdmList", _
"tdmUserLink", "tdmFileLink", "tdmTable")
'Получить коллекцию атрибутов объекта
Set ACol = obj.Attributes
'Если коллекция пустая, закончить работу.
If ACol.Count = 0 Then Exit Sub
'Если коллекция атрибутов была непустой, вывести описания
'каждого элемента коллекции в Окно сообщений.
For Each attr In ACol
s = ACol.Index(attr)+1 & ") " & attr.Description & Chr(13)' № п/п, описание
s = s & "SysID: " & attr.AttributeDefName & Chr(13) 'системное имя типа
s = s & "Тип данных: " & tAttrDefTypes(attr.Type) & Chr(13) 'тип данных
'Добавить значение атрибута, если он непустой (проверим свойство Empty.
'Нюанс: для табличных атрибутов свойство Empty всегда имеет значение TRUE).
If attr.Type = tdmTable Then
strVal = "таблица, строк: " & attr.Rows.Count
ElseIf attr.Empty <> FALSE Then
strVal = "не присвоено"
Else strVal = attr.Value
End If
s = s & "Значение: " & strVal
'Добавить описание в Окно сообщений
ThisApplication.AddNotify s
Next
End Sub
'==============================================================================